[toc]

Flutter 与原生相关

一、使用与原生有关的三方库的注意点

1、trying to create a view with an unregistered type, unregistered view type

使用三方库的时候,如果该库与原生有关。如webview插件、百度地图插件等。如果直接使用,不对工程设置的话,则会报trying to create a view with an unregistered type, unregistered view type:

解决方案:在info.plist加入

1
<key>io.flutter.embedded_views_preview</key>

原因:

2、启动的时候使用rootBundle.loadString加载本地配置json\百度地图,报错:Unhandled Exception: Null check operator used on a null value

启动的时候使用rootBundle.loadString 加载本地配置json,但是直接加载会报错:
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value

解决办法:加载本地资源以前增加一行代码:

WidgetsFlutterBinding.ensureInitialized(); //解决加载json错误

例子:

1
2
3
4
5
void main() async {
WidgetsFlutterBinding.ensureInitialized(); //解决加载json错误
globals.config = jsonDecode(await rootBundle.loadString(‘assets/config.json’));
runApp(MyApp());
}

二、浅析 Flutter 与 iOS 的视图桥梁 PlatformView

三、百度地图

百度地图-Flutter插件

1)iOS权限问题可参照iOS定位SDK手动部署说明
2)iOS头文件错误:

ios1.png

ios2.png

解决办法:Xcode-TARGETS-build settings-Allow Non-modular Includes In Famework Modules设置为YES。

Allow Non-modular Includes In Famework Modules

End